Current wireless mobile communication devices include microprocessors, memory, soundcards, and run one or more software applications. Examples of software applications used in these wireless devices include micro-browsers, address books, email clients, instant messaging (“IM”) clients, and wavetable instruments. Additionally, wireless devices have access to a plurality of services via the Internet. A wireless device may, for example, be used to browse web sites on the Internet, to transmit and receive graphics, and to execute streaming audio and/or video applications. The transfer of Internet content to and from wireless device is typically facilitated by the Wireless Application Protocol (“WAP”), which integrates the Internet and other networks with wireless network platforms.
With respect to wireless device communications, it is important to minimize the amount of data transmitted between the device and its base station or server. Currently, this minimization is typically performed by reducing the size (i.e., the number of bits) of each message sent between the device and server to the greatest extent possible.
A message communicated between a wireless device and a server typically contains primitive data types or primitives (e.g., boolean, integer, long, etc.). Beyond primitives, a message can also contain strings, complex objects, and arrays of primitives and objects. A complex object is an entity encapsulating one or more primitive or string fields, other complex objects, or arrays of these. All primitive and non-primitive fields of the message are serialized into a byte format recognizable to both the sender and receiver. A “compact” message is one in which a data compacting algorithm has been used to decrease the number of bits necessary to encode any data field. For example, an integer (i.e., “int” in Java™) which is represented by 32 bits or 4 bytes can be encoded to use just 1 byte, depending on the value, with current techniques.
One shortcoming of these current techniques is that they are limited in the extent to which they can compact messages communicated between wireless and other devices.
A need therefore exists for an effective method and system for encoding communications between wireless and other devices. Accordingly, a solution that addresses, at least in part, the above and other shortcomings is desired.